package cn.wolfcode.util;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;

import java.util.UUID;

/**
 * 文件上传工具
 */
public class UploadUtil {
    /**
     * //xxxxxsfsasa.jpg,域名必须后面必须加/,防止后面直接把资源拼接在请求路径上
     */
    public static final String ALI_DOMAIN = "https://wujiayu.oss-cn-shenzhen.aliyuncs.com/";

    public static String uploadAli(MultipartFile file) throws Exception {
        //生成文件名称,使用uuid防止文件名重复
        String uuid = UUID.randomUUID().toString();
        //获取真实文件名称 xxx.jpg
        String orgFileName = file.getOriginalFilename();
        //获取拓展名字.jpg
        String ext = "." + FilenameUtils.getExtension(orgFileName);
        //拼接真实文件名和文件拓展名:xxxxxsfsasa.jpg
        String fileName = uuid + ext;

        // Endpoint以杭州为例，其它Region请按实际情况填写。
        String endpoint = "http://oss-cn-shenzhen.aliyuncs.com";
        // 云账号AccessKey有所有API访问权限，建议遵循阿里云安全最佳实践，创建并使用RAM子账号进行API访问或日常运维，
        // 请登录 https://ram.console.aliyun.com 创建。
        String accessKeyId = "LTAI4GJZtXZBYLXLtGbjRiNx";
        String accessKeySecret = "sIg5sDPjTbHCUYGtYSiNjMWQEAAnEb";
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        // 上传文件流。(参数1:bucket名称,参数2:文件名,参数三:文件输入流)
        ossClient.putObject("wujiayu", fileName, file.getInputStream());
        // 关闭OSSClient。
        ossClient.shutdown();
        return ALI_DOMAIN + fileName;
    }

}
























